package com.zpark.controller;

import com.zpark.bean.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import java.text.SimpleDateFormat;
import java.util.*;

/**
 * @PackageName: com.zpark.controller
 * @ClassName: FreemarkerController
 * @Description:
 * @author: RZS
 * @date: 2024/6/6  9:08
 */
//@RestController
@Controller // 返回一个视图名称
public class FreemarkerController {

    @RequestMapping("/t1")
    public ModelAndView test1(){
        // 创建模型视图对象
        ModelAndView vm = new ModelAndView();
        // 处理业务
        // 添加响应数据
        vm.addObject("myDate", new Date().toString());
        vm.addObject("name", "大锤");
        // 添加视图名称
        vm.setViewName("test01");
        // 返回模型视图对象
        return vm;
    }

    @RequestMapping("/t2")
    public String test2(Model model){
        // 绑定数据响应到前端
        model.addAttribute("myDate2", new Date().toString());

        return "test03";
    }

    @RequestMapping("/t4")
    // 数据类型为User
    public ModelAndView test4(){
        // 创建模型视图对象
        ModelAndView vm = new ModelAndView();

        User user = new User();
        user.setId(9527);
        user.setName("周星星");
        user.setSalary(999999.99);
        user.setSr(
                new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
                        .format(new Date()));
        // 添加响应数据
        vm.addObject("user", user);

        // 添加视图名称
        vm.setViewName("test04");

        // 返回模型视图对象
        return vm;
    }

    @RequestMapping("/t5")
    public ModelAndView test5(){
        // 创建模型视图对象
        ModelAndView vm = new ModelAndView();

        User u1 = new User();
        u1.setId(9527);
        u1.setName("周星星");
        u1.setSalary(999999.99);
        u1.setSr(
                new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
                        .format(new Date()));

        User u2 = new User();
        u2.setId(9528);
        u2.setName("张无忌");
        u2.setSalary(1599.56);
        u2.setSr(
                new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
                        .format(new Date()));

        User u3 = new User();
        u3.setId(9529);
        u3.setName("赵敏");
        u3.setSalary(5666.0);
        u3.setSr(
                new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
                        .format(new Date()));

        ArrayList<User> users = new ArrayList<>();
        users.add(u1);
        users.add(u2);
        users.add(u3);

        // 添加响应数据
        vm.addObject("users", users);


        List<String> lists = new ArrayList<>();
        lists.add("Java");
        lists.add("C");
        lists.add("C++");

        vm.addObject("strs", lists);


        int[] arr = new int[]{1, 2, 8, 9, 56, 78};
        vm.addObject("array", arr);




        // 添加视图名称
        vm.setViewName("test05");

        // 返回模型视图对象
        return vm;
    }

    // 响应map类型数据
    @RequestMapping("/t6")
    public ModelAndView test6(){
        // 创建模型视图对象
        ModelAndView vm = new ModelAndView();
        // 处理业务
        User user = new User();
        user.setId(10086);
        user.setName("张三丰");
        user.setSalary(19800.5);
        user.setSr("899-12-12  8:00:00");

        Map<String, Object> map = new HashMap<>();
        map.put("user", user);
        map.put("address", "河南武当山");

        // 添加响应数据
        vm.addObject("maps", map);

        // 添加视图名称
        vm.setViewName("test06");

        // 返回模型视图对象
        return vm;
    }

}
